/**
 * Copyright (c) 2018 九色 All rights reserved.
 * <p>
 * https://www.chenglicun.io
 * <p>
 * 版权所有，侵权必究！
 */

package io.chenglicun.common.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import io.chenglicun.common.page.PageData;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 *  CRUD基础服务接口
 *
 * @author Mark sunlightcs@gmail.com
 */
public interface CrudService<T, D> extends BaseService<T> {

    PageData<D> page(Map<String, Object> params);

    List<D> list(Map<String, Object> params);

    D get(Long id);

    void save(D dto);

    void update(D dto);

    void delete(Long[] ids);

    /**
     *  <p>
     *   条件查询实体
     *    </p>
     * @param queryWrapper 实体对象封装操作类
     * @return List<T>
     */
    T getOne(Wrapper<T> queryWrapper);

}